package com.itsm.statemachine.builder;


import com.itsm.statemachine.Action;

/**
 * When
 *
 * @author LIPENG
 * @date 2024-08-27 9:33 PM
 */
public interface When<S, E, C>{
    /**
     * Define action to be performed during transition
     *
     * @param action performed action
     */
    When<S, E, C> perform(Action<S, E, C> action);

    /**
     * Define action to be async performed during transition
     *
     * @param action performed action
     */
    When<S, E, C> asyncPerform(Action<S, E, C> action);
}
